home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / ASSEMBLE / 2362.ZIP / TESTZ80.ASM < prev   
Assembly Source File  |  1993-10-24  |  13KB  |  834 lines

  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ; $Id: testz80.asm 1.3 1993/08/13 23:42:07 toma Exp $
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4.  
  5. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  6. ; TASM  test file
  7. ; Test all instructions and addressing modes.
  8. ; Processor: Z80
  9. ;
  10. ; SEPT. 16,1987
  11. ; CARL A. WALL
  12. ;  VE3APY
  13. ;
  14. ;
  15. ;    cpu "z180.tbl"
  16. ;    hof "INT8"
  17.  
  18. #define equ .equ
  19. #define end .end
  20.  
  21. n:          equ 20h
  22. nn:         equ 0584h
  23. dddd:       equ 07h
  24. addr16:     equ $1234
  25. port:       equ 3
  26. imm8:       equ 56h    ;immediate data (8 bits)
  27. offset:     equ 7
  28. offset_neg: equ -7
  29.  
  30. ;    try a few cases that have two expressions in the args and
  31. ;    one is inside ().
  32.      LD   (IX+offset),n+1+4+8-9
  33.      LD   (IX+offset+5),n-1
  34.      LD   (IX+dddd),n
  35.      LD   (IX+offset),n
  36.      LD   (IX+offset),n
  37.  
  38. ;    Try all possible instructions
  39.  
  40.      ADC  A,(HL)
  41.      ADC  A,(IX+offset)
  42.      ADC  A,(IX+offset_neg)
  43.      ADC  A,(IY+offset)
  44.      ADC  A,(IY+offset_neg)
  45.      ADC  A,A
  46.      ADC  A,B
  47.      ADC  A,C
  48.      ADC  A,D
  49.      ADC  A,E
  50.      ADC  A,H
  51.      ADC  A,L
  52.      ADC  A,n
  53.      ADC  HL,BC
  54.      ADC  HL,DE
  55.      ADC  HL,HL
  56.      ADC  HL,SP
  57.  
  58.      ADD  A,(HL)
  59.      ADD  A,(IX+offset)
  60.      ADD  A,(IY+offset)
  61.      ADD  A,A
  62.      ADD  A,B
  63.      ADD  A,C
  64.      ADD  A,D
  65.      ADD  A,E
  66.      ADD  A,H
  67.      ADD  A,L
  68.      ADD  A,n
  69.      ADD  HL,BC
  70.      ADD  HL,DE
  71.      ADD  HL,HL
  72.      ADD  HL,SP
  73.      ADD  IX,BC
  74.      ADD  IX,DE
  75.      ADD  IX,IX
  76.      ADD  IX,SP
  77.      ADD  IY,BC
  78.      ADD  IY,DE
  79.      ADD  IY,IY
  80.      ADD  IY,SP
  81.  
  82.      AND  (HL)
  83.      AND  (IX+offset)
  84.      AND  (IY+offset)
  85.      AND  A
  86.      AND  B
  87.      AND  C
  88.      AND  D
  89.      AND  E
  90.      AND  H
  91.      AND  L
  92.      AND  n
  93.  
  94.      BIT  0,(HL)
  95.      BIT  0,(IX+offset)
  96.      BIT  0,(IY+offset)
  97.      BIT  0,A
  98.      BIT  0,B
  99.      BIT  0,C
  100.      BIT  0,D
  101.      BIT  0,E
  102.      BIT  0,H
  103.      BIT  0,L
  104.  
  105.      BIT  1,(HL)
  106.      BIT  1,(IX+offset)
  107.      BIT  1,(IY+offset)
  108.      BIT  1,A
  109.      BIT  1,B
  110.      BIT  1,C
  111.      BIT  1,D
  112.      BIT  1,E
  113.      BIT  1,H
  114.      BIT  1,L
  115.  
  116.      BIT  2,(HL)
  117.      BIT  2,(IX+offset)
  118.      BIT  2,(IY+offset)
  119.      BIT  2,A
  120.      BIT  2,B
  121.      BIT  2,C
  122.      BIT  2,D
  123.      BIT  2,E
  124.      BIT  2,H
  125.      BIT  2,L
  126.  
  127.      BIT  3,(HL)
  128.      BIT  3,(IX+offset)
  129.      BIT  3,(IY+offset)
  130.      BIT  3,A
  131.      BIT  3,B
  132.      BIT  3,C
  133.      BIT  3,D
  134.      BIT  3,E
  135.      BIT  3,H
  136.      BIT  3,L
  137.  
  138.      BIT  4,(HL)
  139.      BIT  4,(IX+offset)
  140.      BIT  4,(IY+offset)
  141.      BIT  4,A
  142.      BIT  4,B
  143.      BIT  4,C
  144.      BIT  4,D
  145.      BIT  4,E
  146.      BIT  4,H
  147.      BIT  4,L
  148.  
  149.      BIT  5,(HL)
  150.      BIT  5,(IX+offset)
  151.      BIT  5,(IY+offset)
  152.      BIT  5,A
  153.      BIT  5,B
  154.      BIT  5,C
  155.      BIT  5,D
  156.      BIT  5,E
  157.      BIT  5,H
  158.      BIT  5,L
  159.  
  160.      BIT  6,(HL)
  161.      BIT  6,(IX+offset)
  162.      BIT  6,(IY+offset)
  163.      BIT  6,A
  164.      BIT  6,B
  165.      BIT  6,C
  166.      BIT  6,D
  167.      BIT  6,E
  168.      BIT  6,H
  169.      BIT  6,L
  170.  
  171.      BIT  7,(HL)
  172.      BIT  7,(IX+offset)
  173.      BIT  7,(IY+offset)
  174.      BIT  7,A
  175.      BIT  7,B
  176.      BIT  7,C
  177.      BIT  7,D
  178.      BIT  7,E
  179.      BIT  7,H
  180.      BIT  7,L
  181.  
  182.      CALL C,addr16
  183.      CALL M,addr16
  184.      CALL NC,addr16
  185.      CALL NZ,addr16
  186.      CALL P,addr16
  187.      CALL PE,addr16
  188.      CALL PO,addr16
  189.      CALL Z,addr16
  190.      CALL addr16
  191.  
  192.      CCF
  193.  
  194.      CP   (HL)
  195.      CP   (IX+offset)
  196.      CP   (IY+offset)
  197.      CP   A
  198.      CP   B
  199.      CP   C
  200.      CP   D
  201.      CP   E
  202.      CP   H
  203.      CP   L
  204.      CP   imm8
  205.      CPD  
  206.      CPDR  
  207.      CPIR   
  208.      CPI   
  209.      CPL   
  210.  
  211.      DAA   
  212.  
  213.      DEC  (HL)
  214.      DEC  (IX+offset)
  215.      DEC  (IY+offset)
  216.      DEC  A
  217.      DEC  B
  218.      DEC  BC
  219.      DEC  C
  220.      DEC  D
  221.      DEC  DE
  222.      DEC  E
  223.      DEC  H
  224.      DEC  HL
  225.      DEC  IX
  226.      DEC  IY
  227.      DEC  L
  228.      DEC  SP
  229.      DI
  230. loop1:
  231.      DJNZ loop1
  232.  
  233.      EI
  234.      EX   (SP),HL
  235.      EX   (SP),IX
  236.      EX   (SP),IY
  237.      EX   AF,AF'
  238.      EX   DE,HL
  239.      EXX    
  240.      HALT     
  241.      
  242.      IM   0
  243.      IM   1
  244.      IM   2
  245.  
  246.      IN   A,(C)
  247.      IN   B,(C)
  248.      IN   C,(C)
  249.      IN   D,(C)
  250.      IN   E,(C)
  251.      IN   H,(C)
  252.      IN   L,(C)
  253.      IN   A,(port)
  254.  
  255.      IN0  B,(n)
  256.      IN0  C,(n)
  257.      IN0  D,(n)
  258.      IN0  E,(n)
  259.      IN0  H,(n)
  260.      IN0  L,(n)
  261.  
  262.      INC  (HL)
  263.      INC  (IX+offset)
  264.      INC  (IY+offset)
  265.      INC  A
  266.      INC  B
  267.      INC  BC
  268.      INC  C
  269.      INC  D
  270.      INC  DE
  271.      INC  E
  272.      INC  H
  273.      INC  HL
  274.      INC  IX
  275.      INC  IY
  276.      INC  L
  277.      INC  SP
  278.  
  279.      IND     
  280.      INDR     
  281.      INI
  282.      INIR    
  283.      
  284.      JP   addr16
  285.      JP   (HL)
  286.      JP   (IX)
  287.      JP   (IY)
  288.      JP   C,addr16
  289.      JP   M,addr16
  290.      JP   NC,addr16
  291.      JP   NZ,addr16
  292.      JP   P,addr16
  293.      JP   PE,addr16
  294.      JP   PO,addr16
  295.      JP   Z,addr16
  296.  
  297. loop2:
  298.      JR   C,loop2
  299.      JR   NC,loop2
  300.      JR   NZ,loop2
  301.      JR   Z,loop2
  302.      JR   loop2
  303.  
  304.      LD   (BC),A
  305.      LD   (DE),A
  306.      LD   (HL),A
  307.      LD   (HL),B
  308.      LD   (HL),C
  309.      LD   (HL),D
  310.      LD   (HL),E
  311.      LD   (HL),H
  312.      LD   (HL),L
  313.      LD   (HL),n
  314.      LD   (IX+offset),A
  315.      LD   (IX+offset),B
  316.      LD   (IX+offset),C
  317.      LD   (IX+offset),D
  318.      LD   (IX+offset),E
  319.      LD   (IX+offset),H
  320.      LD   (IX+offset),L
  321.      LD   (IX+offset),n
  322.      LD   (IY+offset),A
  323.      LD   (IY+offset),B
  324.      LD   (IY+offset),C
  325.      LD   (IY+offset),D
  326.      LD   (IY+offset),E
  327.      LD   (IY+offset),H
  328.      LD   (IY+offset),L
  329.      LD   (IY+offset),n
  330.      LD   (nn),A
  331.      LD   (nn),BC
  332.      LD   (nn),DE
  333.      LD   (nn),HL
  334.      LD   (nn),IX
  335.      LD   (nn),IY
  336.      LD   (nn),SP
  337.      LD   A,(BC)
  338.      LD   A,(DE)
  339.      LD   A,(HL)
  340.      LD   A,(IX+offset)
  341.      LD   A,(IY+offset)
  342.      LD   A,(nn)
  343.      LD   A,A
  344.      LD   A,B
  345.      LD   A,C
  346.      LD   A,D
  347.      LD   A,E
  348.      LD   A,H
  349.      LD   A,I
  350.      LD   A,L
  351.      LD   A,n
  352.      LD   A,R
  353.      LD   B,(HL)
  354.      LD   B,(IX+offset)
  355.      LD   B,(IY+offset)
  356.      LD   B,A
  357.      LD   B,B
  358.      LD   B,C
  359.      LD   B,D
  360.      LD   B,E
  361.      LD   B,H
  362.      LD   B,L
  363.      LD   B,n
  364.      LD   BC,(nn)
  365.      LD   BC,nn
  366.      LD   C,(HL)
  367.      LD   C,(IX+offset)
  368.      LD   C,(IY+offset)
  369.      LD   C,A
  370.      LD   C,B
  371.      LD   C,C
  372.      LD   C,D
  373.      LD   C,E
  374.      LD   C,H
  375.      LD   C,L
  376.      LD   C,n
  377.      LD   D,(HL)
  378.      LD   D,(IX+offset)
  379.      LD   D,(IY+offset)
  380.      LD   D,A
  381.      LD   D,B
  382.      LD   D,C
  383.      LD   D,D
  384.      LD   D,E
  385.      LD   D,H
  386.      LD   D,L
  387.      LD   D,n
  388.      LD   DE,(nn)
  389.      LD   DE,nn
  390.      LD   E,(HL)
  391.      LD   E,(IX+offset)
  392.      LD   E,(IY+offset)
  393.      LD   E,A
  394.      LD   E,B
  395.      LD   E,C
  396.      LD   E,D
  397.      LD   E,E
  398.      LD   E,H
  399.      LD   E,L
  400.      LD   E,n
  401.      LD   H,(HL)
  402.      LD   H,(IX+offset)
  403.      LD   H,(IY+offset)
  404.      LD   H,A
  405.      LD   H,B
  406.      LD   H,C
  407.      LD   H,D
  408.      LD   H,E
  409.      LD   H,H
  410.      LD   H,L
  411.      LD   H,n
  412.      LD   HL,(nn)
  413.      LD   HL,nn
  414.      LD   I,A
  415.      LD   IX,(nn)
  416.      LD   IX,nn
  417.      LD   IY,(nn)
  418.      LD   IY,nn
  419.      LD   L,(HL)
  420.      LD   L,(IX+offset)
  421.      LD   L,(IY+offset)
  422.      LD   L,A
  423.      LD   L,B
  424.      LD   L,C
  425.      LD   L,D
  426.      LD   L,E
  427.      LD   L,H
  428.      LD   L,L
  429.      LD   L,n
  430.      LD   R,A
  431.      LD   SP,(nn)
  432.      LD   SP,HL
  433.      LD   SP,IX
  434.      LD   SP,IY
  435.      LD   SP,nn
  436.  
  437.      LDD
  438.      LDDR
  439.      LDI
  440.      LDIR
  441.  
  442.      MLT  BC
  443.      MLT  DE
  444.      MLT  HL
  445.      MLT  SP
  446.  
  447.      NEG
  448.      NOP
  449.  
  450.      OR   (HL)
  451.      OR   (IX+offset)
  452.      OR   (IY+offset)
  453.      OR   A
  454.      OR   B
  455.      OR   C
  456.      OR   D
  457.      OR   E
  458.      OR   H
  459.      OR   L
  460.      OR   imm8
  461.  
  462.      OTDR
  463.      OTIR
  464.  
  465.      OUT  (C),A
  466.      OUT  (C),B
  467.      OUT  (C),C
  468.      OUT  (C),D
  469.      OUT  (C),E
  470.      OUT  (C),H
  471.      OUT  (C),L
  472.      OUT  (port),A
  473.  
  474.      OUT0 (imm8),A
  475.      OUT0 (imm8),B
  476.      OUT0 (imm8),C
  477.      OUT0 (imm8),D
  478.      OUT0 (imm8),E
  479.      OUT0 (imm8),H
  480.      OUT0 (imm8),L
  481.  
  482.      OUTD
  483.      OUTI
  484.      OTIM
  485.      OTDM
  486.      OTIMR
  487.      OTDMR
  488.  
  489.      POP  AF
  490.      POP  BC
  491.      POP  DE
  492.      POP  HL
  493.      POP  IX
  494.      POP  IY
  495.  
  496.      PUSH AF
  497.      PUSH BC
  498.      PUSH DE
  499.      PUSH HL
  500.      PUSH IX
  501.      PUSH IY
  502.  
  503.      RES  0,(HL)
  504.      RES  0,(IX+offset)
  505.      RES  0,(IY+offset)
  506.      RES  0,A
  507.      RES  0,B
  508.      RES  0,C
  509.      RES  0,D
  510.      RES  0,E
  511.      RES  0,H
  512.      RES  0,L
  513.  
  514.      RES  1,(HL)
  515.      RES  1,(IX+offset)
  516.      RES  1,(IY+offset)
  517.      RES  1,A
  518.      RES  1,B
  519.      RES  1,C
  520.      RES  1,D
  521.      RES  1,E
  522.      RES  1,H
  523.      RES  1,L
  524.  
  525.      RES  2,(HL)
  526.      RES  2,(IX+offset)
  527.      RES  2,(IY+offset)
  528.      RES  2,A
  529.      RES  2,B
  530.      RES  2,C
  531.      RES  2,D
  532.      RES  2,E
  533.      RES  2,H
  534.      RES  2,L
  535.  
  536.      RES  3,(HL)
  537.      RES  3,(IX+offset)
  538.      RES  3,(IY+offset)
  539.      RES  3,A
  540.      RES  3,B
  541.      RES  3,C
  542.      RES  3,D
  543.      RES  3,E
  544.      RES  3,H
  545.      RES  3,L
  546.  
  547.      RES  4,(HL)
  548.      RES  4,(IX+offset)
  549.      RES  4,(IY+offset)
  550.      RES  4,A
  551.      RES  4,B
  552.      RES  4,C
  553.      RES  4,D
  554.      RES  4,E
  555.      RES  4,H
  556.      RES  4,L
  557.  
  558.      RES  5,(HL)
  559.      RES  5,(IX+offset)
  560.      RES  5,(IY+offset)
  561.      RES  5,A
  562.      RES  5,B
  563.      RES  5,C
  564.      RES  5,D
  565.      RES  5,E
  566.      RES  5,H
  567.      RES  5,L
  568.  
  569.      RES  6,(HL)
  570.      RES  6,(IX+offset)
  571.      RES  6,(IY+offset)
  572.      RES  6,A
  573.      RES  6,B
  574.      RES  6,C
  575.      RES  6,D
  576.      RES  6,E
  577.      RES  6,H
  578.      RES  6,L
  579.  
  580.      RES  7,(HL)
  581.      RES  7,(IX+offset)
  582.      RES  7,(IY+offset)
  583.      RES  7,A
  584.      RES  7,B
  585.      RES  7,C
  586.      RES  7,D
  587.      RES  7,E
  588.      RES  7,H
  589.      RES  7,L
  590.  
  591.      RET
  592.      RET  C
  593.      RET  M
  594.      RET  NC
  595.      RET  NZ
  596.      RET  P
  597.      RET  PE
  598.      RET  PO
  599.      RET  Z
  600.      RETI
  601.      RETN
  602.  
  603.      RL   (HL)
  604.      RL   (IX+offset)
  605.      RL   (IY+offset)
  606.      RL   A
  607.      RL   B
  608.      RL   C
  609.      RL   D
  610.      RL   E
  611.      RL   H
  612.      RL   L
  613.      RLA
  614.  
  615.      RLC  (HL)
  616.      RLC  (IX+offset)
  617.      RLC  (IY+offset)
  618.      RLC  A
  619.      RLC  B
  620.      RLC  C
  621.      RLC  D
  622.      RLC  E
  623.      RLC  H
  624.      RLC  L
  625.      RLCA
  626.      RLD
  627.  
  628.      RR   (HL)
  629.      RR   (IX+offset)
  630.      RR   (IY+offset)
  631.      RR   A
  632.      RR   B
  633.      RR   C
  634.      RR   D
  635.      RR   E
  636.      RR   H
  637.      RR   L
  638.      RRA
  639.  
  640.      RRC  (HL)
  641.      RRC  (IX+offset)
  642.      RRC  (IY+offset)
  643.      RRC  A
  644.      RRC  B
  645.      RRC  C
  646.      RRC  D
  647.      RRC  E
  648.      RRC  H
  649.      RRC  L
  650.      RRCA
  651.      RRD
  652.  
  653.      RST  00H
  654.      RST  08H
  655.      RST  10H
  656.      RST  18H
  657.      RST  20H
  658.      RST  28H
  659.      RST  30H
  660.      RST  38H
  661.  
  662.      SBC  A,n
  663.      SBC  A,(HL)
  664.      SBC  A,(IX+offset)
  665.      SBC  A,(IY+offset)
  666.      SBC  A,A
  667.      SBC  A,B
  668.      SBC  A,C
  669.      SBC  A,D
  670.      SBC  A,E
  671.      SBC  A,H
  672.      SBC  A,L
  673.      SBC  HL,BC
  674.      SBC  HL,DE
  675.      SBC  HL,HL
  676.      SBC  HL,SP
  677.      SCF
  678.  
  679.      SET  0,(HL)
  680.      SET  0,(IX+offset)
  681.      SET  0,(IY+offset)
  682.      SET  0,A
  683.      SET  0,B
  684.      SET  0,C
  685.      SET  0,D
  686.      SET  0,E
  687.      SET  0,H
  688.      SET  0,L
  689.  
  690.      SET  1,(HL)
  691.      SET  1,(IX+offset)
  692.      SET  1,(IY+offset)
  693.      SET  1,A
  694.      SET  1,B
  695.      SET  1,C
  696.      SET  1,D
  697.      SET  1,E
  698.      SET  1,H
  699.      SET  1,L
  700.  
  701.      SET  2,(HL)
  702.      SET  2,(IX+offset)
  703.      SET  2,(IY+offset)
  704.      SET  2,A
  705.      SET  2,B
  706.      SET  2,C
  707.      SET  2,D
  708.      SET  2,E
  709.      SET  2,H
  710.      SET  2,L
  711.  
  712.      SET  3,(HL)
  713.      SET  3,(IX+offset)
  714.      SET  3,(IY+offset)
  715.      SET  3,A
  716.      SET  3,B
  717.      SET  3,C
  718.      SET  3,D
  719.      SET  3,E
  720.      SET  3,H
  721.      SET  3,L
  722.  
  723.      SET  4,(HL)
  724.      SET  4,(IX+offset)
  725.      SET  4,(IY+offset)
  726.      SET  4,A
  727.      SET  4,B
  728.      SET  4,C
  729.      SET  4,D
  730.      SET  4,E
  731.      SET  4,H
  732.      SET  4,L
  733.  
  734.      SET  5,(HL)
  735.      SET  5,(IX+offset)
  736.      SET  5,(IY+offset)
  737.      SET  5,A
  738.      SET  5,B
  739.      SET  5,C
  740.      SET  5,D
  741.      SET  5,E
  742.      SET  5,H
  743.      SET  5,L
  744.  
  745.      SET  6,(HL)
  746.      SET  6,(IX+offset)
  747.      SET  6,(IY+offset)
  748.      SET  6,A
  749.      SET  6,B
  750.      SET  6,C
  751.      SET  6,D
  752.      SET  6,E
  753.      SET  6,H
  754.      SET  6,L
  755.  
  756.      SET  7,(HL)
  757.      SET  7,(IX+offset)
  758.      SET  7,(IY+offset)
  759.      SET  7,A
  760.      SET  7,B
  761.      SET  7,C
  762.      SET  7,D
  763.      SET  7,E
  764.      SET  7,H
  765.      SET  7,L
  766.  
  767.      SLA  (HL)
  768.      SLA  (IX+offset)
  769.      SLA  (IY+offset)
  770.      SLA  A
  771.      SLA  B
  772.      SLA  C
  773.      SLA  D
  774.      SLA  E
  775.      SLA  H
  776.      SLA  L
  777.  
  778.      SLP
  779.  
  780.      SRA  (HL)
  781.      SRA  (IX+offset)
  782.      SRA  (IY+offset)
  783.      SRA  A
  784.      SRA  B
  785.      SRA  C
  786.      SRA  D
  787.      SRA  E
  788.      SRA  H
  789.      SRA  L
  790.  
  791.      SRL  (HL)
  792.      SRL  (IX+offset)
  793.      SRL  (IY+offset)
  794.      SRL  A
  795.      SRL  B
  796.      SRL  C
  797.      SRL  D
  798.      SRL  E
  799.      SRL  H
  800.      SRL  L
  801.      
  802.      SUB  (HL)
  803.      SUB  (IX+offset)
  804.      SUB  (IY+offset)
  805.      SUB  A
  806.      SUB  B
  807.      SUB  C
  808.      SUB  D
  809.      SUB  E
  810.      SUB  H
  811.      SUB  L
  812.      SUB  n
  813.  
  814.      TST  A
  815.      TST  B
  816.      TST  C
  817.      TST  D
  818.      TST  E
  819.      TST  (HL)
  820.      TST  n
  821.  
  822.      XOR  (HL)
  823.      XOR  (IX+offset)
  824.      XOR  (IY+offset)
  825.      XOR  A
  826.      XOR  B
  827.      XOR  C
  828.      XOR  D
  829.      XOR  E
  830.      XOR  H
  831.      XOR  L
  832.      XOR  n
  833.      end
  834.